Neovim에서 단축키로 로그 찍기
vscode에는 turbo console log라는 익스텐션으로 단축키로 쉽게 로그를 추가했었습니다.
https://marketplace.visualstudio.com/items?itemName=ChakrounAnas.turbo-console-log
vscdoe에서 ↑ 익스텐션을 매우 애용하고 있었는데, neovim을 쓰면서도 동일한 기능을 쓰고 싶었습니다.
먼가 vim 자체적으로는 매크로 만들기가 어려워 보여서 찾아보니 플러그인을 찾아서 공유합니다.
debugprint.nvim
https://github.com/andrewferrier/debugprint.nvim
사용법은 간단합니다. 어떤 변수에 커서가 올라간 상태에서 g?v
를 하면 로그가 추가되는 형태입니다.
const a = 1; // a 에다가 커서를 올리고 g?v console.log("DEBUGPRINT[1]: a.ts:10: a=", a)
v1.2.0 버전에서 대응하는 언어는 아래와 같으니 참고해주세요.
bash c cpp (C++) cs (C#) dart dockerfile go java javascript lua make php python ruby rust sh (Sh/Bash) typescript vim zsh
설치
각자 사용하는 플러그인 매니저를 사용해주세요. https://github.com/andrewferrier/debugprint.nvim#installation
저는 lazy.nvim을 사용하기 때문에 아래와 같이 설정해주었습니다.
-- log.lua return { "andrewferrier/debugprint.nvim", -- NeoVim 0.8 이하는 아래 디펜던시를 추가해주세요! -- dependencies = { -- "nvim-treesitter/nvim-treesitter" -- }, version = "*" }
팁
그냥 사용해도 좋지만 약간의 커스텀을 한다면 아래처럼 포맷을 설정해줄 수도 있습니다. 이모지를 추가해주면 확실히 다른 로그랑 구분이 되어서 좋습니다.
-- log.lua return { "andrewferrier/debugprint.nvim", config = function() require("debugprint").setup({ display_counter = false, print_tag = "🚀 ", end, version = "*" } -- console.log("DEBUGPRINT[1]: a.ts:10: a=", a) 처럼 투박했던 로그가 -- console.log("🚀 : a.ts:10: a=", a) 이모지로 보기 좋게 바꿀 수 있습니다.
자주 사용되는 단축키로는 아래와 같이 있습니다.
g?p
는 단순히 디버그 포인트 처럼 로그를 남길 수 있습니다.-
g?V, g?P
는 현재라인에 로그를 추가해서 상황에 따라 사용할 수 있습니다. -
:DeleteDebugPrints
로 추가한 로그들을 한방에 지울 수 있습니다.
마무리
만약 자기가 자주 쓰는 언어도 추가하고 싶다면 아래 파일을 잘 변경하면 될 수도 있을 것 같습니다?
https://github.com/andrewferrier/debugprint.nvim/blob/main/lua/debugprint/filetypes.lua